<?php

require_once '../db/Conexion.php';

//OBTIENE LOS DATOS DE POST
function getFilter() {    
    $filtro = array();
    $filtro['rol'] = "miembros";
    $filtro['fechaDesde'] = "";
    $filtro['fechaHasta'] = "";
    $filtro['limite'] = 10;
    
    if (isset($_POST['filtrar'])) {
        if (isset($_POST['rol'])) $filtro['rol'] = $_POST['rol'];
        if (isset($_POST['fechaDesde'])) $filtro['fechaDesde'] = $_POST['fechaDesde'];
        if (isset($_POST['fechaHasta'])) $filtro['fechaHasta'] = $_POST['fechaHasta'];
        if (isset($_POST['limite'])) $filtro['limite'] = $_POST['limite'];
    }
    return $filtro;
}


//LISTADO
function listar() {    
    $filtro = getFilter();
    $qrol = "";
    $filtroFecha = "";
    $qlimite = "LIMIT 10 ";
    
    if($filtro['rol'] == 'miembros') $qrol = "AND bs.miembro IS TRUE ";
    if($filtro['rol'] == 'invitados') $qrol = "AND bs.invitado IS TRUE ";
    if($filtro['limite']) $qlimite = "LIMIT ".$filtro['limite'];
    
    if($filtro['fechaDesde'] || $filtro['fechaHasta']) {
        $qfechaDesde = "";
        $qfechaHasta = "";
        if(strlen($filtro['fechaDesde'])>6) $qfechaDesde = "AND apertura >= '".$filtro['fechaDesde']." 00:00:00' ";
        if(strlen($filtro['fechaHasta'])>6) $qfechaHasta = "AND apertura <= '".$filtro['fechaHasta']." 23:59:59' ";
        $filtroFecha = "AND m.bleu_evento_id IN (SELECT id FROM bleu_eventos WHERE 1=1 $qfechaDesde $qfechaHasta)"; 
    }
    
    $q="SELECT 
            COUNT(m.persona_id) AS visitas, 
            m.persona_id AS persona_id, 
            p.apenom AS nombre, 
            MIN(m.bleu_evento_id) as primer_evento_id, 
            (SELECT nombre FROM bleu_eventos WHERE id = MIN(m.bleu_evento_id)) AS primer_evento, 
            MAX(m.bleu_evento_id) as ultimo_evento_id, 
            (SELECT nombre FROM bleu_eventos WHERE id = MAX(m.bleu_evento_id)) AS ultimo_evento  
        FROM bleu_movimientos AS m, personas AS p, bleu_specifics AS bs 
        WHERE 1=1 
        AND m.persona_id = p.id 
        AND m.persona_id = bs.persona_id 
        $qrol
        AND bs.administrador IS FALSE 
        AND bs.supervisor IS FALSE 
        AND bs.cajero IS FALSE 
        AND bs.inactivo IS FALSE 
        AND m.id = (
            SELECT id FROM bleu_movimientos 
            WHERE bleu_evento_id = m.bleu_evento_id 
            AND persona_id = m.persona_id 
            AND accion = 'ENTRADA' 
            ORDER BY id ASC LIMIT 1
        ) 
        $filtroFecha 
        GROUP BY persona_id
        ORDER BY visitas DESC, primer_evento_id ASC, ultimo_evento_id DESC, persona_id ASC $qlimite";
    
    
    $listado = consultar($q);
    require_once '../view/bleu/ListBleuRankingVisitas.php';
}

listar();